<?php
/**
 * Контроллер главной страницы административной панели
 * 
 * @category Phorm
 * @package Controller_Module_Control
 * @name /Phorm/Controller/Module/Control/Index.php
 * @copyright phorm.ru
 * @since 08.01.2011
 * @author vladimir@kachalov.net
 * @todo Выбросить Phorm_ControlPanel_Event
 */

class Phorm_Controller_Module_Control_Index extends Phorm_Controller_Controller {
	
	/**
	 * Массив конфигурации таблиц-гридов
	 * @var array
	 */
	public $gridConfig;
	
	
	/**
	 * Предиспетчер
	 * 
	 * @return void
	 */
		
	public function preDispatch() {
		
		$this->gridConfig = Phorm_Config::xml('grids/control/index.xml');
		
	}
	
		
	/**
	 * Главная страница
	 * 
	 * @return void
	 * @todo Подумать над более красивым решением проблемы с escape
	 * @todo Что за die?!!!!
	 */
		
	public function indexAction() {
		
		if($this->_request->isXmlHttpRequest()) {
			
			if(isset($this->_params['categoryid'])) {
				
				$Categories = new Phorm_Categories();
				$this->view->setEscape('trim');
				$Menu = $this->view->navigation()->menu($Categories->getNavigationMenu($this->_params['categoryid']))->render();
				die($Menu);
				
			}
			
		} else {
			
			$Mvc = new Phorm_Mvc();
			$this->view->assign('MvcTree',$this->view->navigation()->menu($Mvc->getNavigationMenu())->render());
			
			$Resource = new Phorm_Resource();
			$this->view->assign('ModulesList',$Resource->getModulesList());
			
			$Categories = new Phorm_Categories();
			$this->view->setEscape('trim');
			$Menu = $this->view->navigation()->menu($Categories->getNavigationMenu())->render();
			$this->view->setEscape('htmlspecialchars');
			$this->view->assign('CategoriesTree',$Menu);
			
		}
						
	}
	
	/**
	 * Рабочий стол пользователя
	 * 
	 * @return void
	 */
		
	public function desktopAction() {
		
	}
		
	
	/**
	 * Расширенный рабочий стол
	 * 
	 * @return void
	 */
		
	public function extendAction() {
		
		$grid_options = Phorm_Config::xml('grids/control/log.xml');
		
		if($this->_request->isXmlHttpRequest()) {
			
			$Log = new Phorm_Log();
		
			$rows = $Log->getLogRecords($this->_params);
			$paginator = $Log->getPaginator();
			$this->_helper->json(Phorm_JQuery_DataGrid::data($rows,$paginator,$grid_options));
		
		} else {
			
			$this->view->assign('LogDataTable',$this->view->DataGrid('LogDataTable',$grid_options));
			
		}
						
	}
		
}

 